home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1991 October
/
64er_Magazin_91-10_1991_Markt__Technik_de_Side_B.d64
/
tech-tech 2.src
< prev
next >
Wrap
Text File
|
2022-10-26
|
4KB
|
209 lines
; Tech-Tech - die zweite!
;------------------------
; (w) by Anonym of PADUA!
; (Frank Michlick)
;------------------------
org $c000
ldx #0
stx $d020
stx $d021
lda #$ff ;Bildschirm mit neuem
:clr sta $0400,x ;Leerzeichen ($ff)
sta $0500,x ;fuellen
sta $0600,x
sta $0700,x
inx
bne clr
:store txa ;Matrix der Grafik
sta $0478,x ;auf den Bildschirm
lda #$0b ;schreiben und die
sta $d878,x ;Farben setzen
inx
cpx #6*40
bne store
lda #$06
sta $d022
lda #$0e
sta $d023
sei
lda #$81 ; IRQ-Initialisierung
sta $d01a
lda #0
sta $dc0e
lda #$7f
sta $dc0d
lda #$1b
sta $d011
lda #$3f
sta $d012
lda #<irq
ldx #>irq
sta $0314
stx $0315
cli
:back jmp back ; endlosschleife
:irq ldy #$3f ;Zuerst Ausgleich
cpy $d012 ;von Rasterstrahl-
bne irq ;ungenauigkeiten
ldx #$10 ;
:delay1 dex ;(siehe Profi-Corner
bne delay1 ; in 1/91)
iny
cpy $d012
nop
beq skip1
cmp $00
nop
:skip1 ldx #9
:delay2 dex
bne delay2
iny
nop
nop
cpy $d012
nop
beq skip2
cmp $00
:skip2 ldx #10
:delay3 dex
bne delay3
iny
cpy $d012
bne next
:next bit $00 ; warten, bis der
nop ; Rasterstrahl die; richtige Start-
nop ; position erreicht
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ldx #0
:loop jsr timeit ; Die Register
jsr timeit ; $d018 und $d016
jsr timeit ; immer an der
jsr timeit ; richtigen Stelle
jsr timeit ; beschreiben
jsr timeit
nop
lda chars,x
ldy wave,x
sta $d018
inx
bit $eaea
sty $d016
nop
nop
nop
nop
lda chars,x
sta $d018
lda wave,x
sta $d016
bit $eaea
inx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cpx #$38 ; fertig?
bne loop ; die naechsten 8 Zeilen
lda chars ;Bewegung der beiden
sta $fa ;Tabellen nach oben
lda wave
sta $fb
ldx #0
:move lda chars+1,x
sta chars,x
lda wave+1,x
sta wave,x
inx
cpx #$38
bne move
lda $fa
sta chars+$37
lda $fb
sta wave+$37
lda #$3f ; Abschluss
sta $d012
inc $d019
jmp $febc
:timeit nop ;Unterroutine
nop ;zum exakten
nop ;Timimg der
nop ;Rasterzeilen
lda wave,x
sta $d016
bit $eaea
lda chars,x
sta $d018
inx
bit $00
nop
nop
nop
nop
nop
nop
nop
nop
nop
rts
;Tabellen fuer die Verschiebung
; $d016-Tabelle
:wave
b $1e,$18,$1a,$1c,$1d,$1e,$1f,$18
b $19,$1a,$1b,$1b,$1c,$1c,$1d,$1d
b $1e,$1e,$1e,$1e,$1f,$1f,$1f,$1f
b $1f,$1f,$1f,$1f,$1e,$1e,$1e,$1e
b $1d,$1d,$1c,$1c,$1b,$1b,$1a,$19
b $18,$1f,$1e,$1d,$1c,$1a,$18,$1e
b $1c,$1a,$19,$18,$18,$19,$1a,$1c
; $d018-Tabelle
:chars
b 24,26,26,26,26,26,26,28
b 28,28,28,28,28,28,28,28
b 28,28,28,28,28,28,28,28
b 28,28,28,28,28,28,28,28
b 28,28,28,28,28,28,28,28
b 28,26,26,26,26,26,26,24
b 24,24,24,24,24,24,24,24